.\"     $OpenBSD: daadio.4,v 1.10 2014/01/21 03:15:46 schwarze Exp $
.\"
.\" Copyright (c) 2002 Jason L. Wright (jason@thought.net)
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
.\" DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
.\" INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
.\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
.\" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
.\" ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 21 2014 $
.Dt DAADIO 4 sparc
.Os
.Sh NAME
.Nm daadio
.Nd MATRIX MD-DAADIO digital/analog, analog/digital, parallel I/O board
.Sh SYNOPSIS
.Cd "daadio* at fvme? addr 0x0 level 1 vect 0x1f"
.Sh DESCRIPTION
The
.Nm daadio
driver provides
.Xr ioctl 2
entry points to read and write analog/digital, digital/analog, and
parallel input/output registers.
A typical
.Nm
has 6 8bit parallel ports, 8 12bit DAC ports, and 32 12bit ADC ports.
.Pp
The
.Nm
has a large number of configuration options, but the driver does not.
For the ADC, only simple polled mode is supported (there is no
support for single cycle sampling).
.Sh IOCTLS
The
.Nm
device responds to the following
.Xr ioctl 2
calls defined in
.In machine/daadioio.h :
.Bl -tag -width DIOGOPIO
.It Dv DIOGPIO
.Pq Li "struct daadio_pio"
Get the value of the parallel port
.Ar dap_reg
and store it in
.Ar dap_val .
The argument structure is defined as follows:
.Bd -literal -offset indent
struct daadio_pio {
        u_int8_t dap_reg;
        u_int8_t dap_val;
};
.Ed
.It Dv DIOSPIO
.Pq Li "struct daadio_pio"
Set the value of the parallel port
.Ar dap_reg
to the value in
.Ar dap_val .
.It Dv DIOSDAC
.Pq Li "struct daadio_dac"
Set the value of the DAC port in
.Ar dac_reg
to the value in
.Ar dac_val .
The argument structure is defined as follows:
.Bd -literal -offset indent
struct daadio_dac {
        u_int8_t dac_reg;
        u_int16_t dac_val;
};
.Ed
.It Dv DIOGADC
.Pq Li "struct daadio_adc"
Get the value of the ADC port specified in
.Ar dad_reg
into
.Ar dad_val .
The lower 12 bits of
.Ar dad_val
are the conversion value, the upper four bits are used for status.
The argument structure is defined as follows:
.Bd -literal -offset indent
struct daadio_adc {
        u_int8_t dad_reg;
        u_int16_t dad_val;
#define ADC_IV 0x1000 /* out of range */
#define ADC_PR 0x2000 /* pipeline empty */
#define ADC_DR 0x4000 /* data ready */
#define ADC_OW 0x8000 /* data overwritten */
#define ADC_VAL 0x0fff /* the data */
};
.Ed
.El
.Sh SEE ALSO
.Xr ioctl 2 ,
.Xr fvme 4 ,
.Xr intro 4
.Sh HISTORY
.Ox
support for the
.Nm
first appeared in
.Ox 2.6 .
